package cn.wolfcode.wolf2w.job;

import cn.wolfcode.wolf2w.redis.service.IStrategyVORedisService;
import cn.wolfcode.wolf2w.redis.vo.StrategyStatisVO;
import cn.wolfcode.wolf2w.service.IStrategyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * Created by 甘静斌 on 2020-08-17 23:40
 */
//@Component
public class RedisDataPersistenceJob {

    @Autowired
    private IStrategyService strategyService;

    @Autowired
    private IStrategyVORedisService strategyVORedisService;

    /**
     * Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每个域代表一个含义
     *
     * Seconds  Minutes  Hours  DayofMonth  Month  DayofWeek  Year
     *    秒       分     时       几号      月       周几     年
     *
     * Seconds  Minutes  Hours  DayofMonth  Month  DayofWeek        spring支持这种
     *
     *    秒     分       时       几号      月       周几
     *
     *    0       0        2        1         *         ?            表示在每月的1日的凌晨两点调整任务
     *
     */

    @Scheduled(cron = "0/5 * * * * ?")
    public void dowork(){

        System.out.println("-----------------攻略vo对象持久化---------------");
        //从redis中获取所有vo对象
        List<StrategyStatisVO> vos =  strategyVORedisService.queryStrategyVos();

        //遍历vo对象执行攻略统计数据更新

        for (StrategyStatisVO vo : vos) {
            strategyService.updateStratisVo(vo);
        }
    }
}
